Ein komplexes Formular

Das Formular FrmAllgemeines ist komplexer als das Startformular. Es enthält eine Vielzahl von Steuerelementen, welche die Stammdaten der laufenden Aufgabe anzeigen. Alle Steuerelemente greifen auf die gleichen Herkunftsdaten zu. Der folgende Bildschirmausschnitt zeigt die benutzerdefinierten Steuerelemente und bezeichnet darunter jeweils das erste Vorkommen mit seinem Klassennamen:


Jedes Steuerelement des obigen Formulars gehört zu einer der folgenden Klassen:

dienen lediglich der Erläuterung des Formulars oder seiner Steuerelemente.

enthalten numerische oder alphanumerische Daten. Felder, deren Daten aus einer Access-Tabelle stammen, heissen gebunden. Die Datenherkunft eines ungebundenen Felds kann zum Beispiel eine Programmvariable oder -funktion in VBA sein.

Oft ist es für die Benutzerin einfacher, einen Menüwert zu wählen, statt ihn zeichenweise einzugeben. Wie Textfelder können auch Listenfelder gebunden oder ungebunden sein.

Ein Listenfeld benötigt je nach Zahl der Listenelemente viel Platz. Das obige Listenfeld Thema erstreckt sich zum Beispiel über die ganze Formularhöhe. Ein Kombinationsfeld wie Aufgabenquelle erfordert hingegen nur eine einzige Zeile. Sie wählen den gewünschten Wert, indem Sie auf den Pfeil und dann einen Wert des erscheinenden Menüs klicken.

Ein Unterformular ist ein Formular innerhalb eines Hauptformulars. FrmAllgemeines ist das Hauptformular, Unterfrm Fragenverwendung das Unterformular. Es heisst Fragenverwendung, weil es die Testtermine auflistet, welche die laufende Frage (Aufgabe) enthalten. Die laufende Aufgabe und die Klausurtermine stehen in einer 1:m-Beziehung. Das Hauptformular zeigt die Daten für genau 1 Aufgabe an, und der jeweilige Inhalt des Unterformulars zeigt die zugehörigen m Termine an (wobei m entweder 0 oder 1 oder mehrere Sätze aus einer Tabelle oder Abfrage bezeichnet).

Eine Befehlsschaltfläche (auch Schaltfläche oder engl. button) ist eine Rechtecksfläche mit einem Bild oder einem Titel. Die Schaltfläche mit dem Ausrufezeichen enthält zum Beispiel ein Bild (den Inhalt der Bitmapdatei Voreinstellung.btm) und die drei Schaltflächen links unten enthalten Text

Eine Schaltfläche ist ein aktives Steuerelement, weil der Entwickler einem ihrer Ereignisse (meist einem Linksklick) ein Unterprogramm zuordnen muss. Das Beispiel QuadratDialog zeigt, wie Sie für das Klickereignis einer Schaltfläche ein Unterprogramm entwickeln können.

Mit den fünf Navigationsschaltflächen können Sie den aktuellen Datensatz eines Formulars ändern. Die Schaltfläche mit dem Stern (*) lässt Sie einen neuen Satz anfügen. Im Gegensatz zu den erwähnten Steuerelementen sind Navigationsschaltflächen systemdefiniert. Die Entwicklernin kann sie in MS Access nicht anpassen.

Das systemdefinierte Navigationsfeld nimmt die Nummer des Datensatzes auf, auf welchen Sie in einem Formular positionieren wollen. 

Jede Klasse von Steuerelementen lässt sich durch Eigenschaften und Methoden beschreiben. Ein bestimmtes Steuerelement unterscheidet sich von anderen Elementen der gleichen Klasse durch unterschiedliche Eigenschafts- und Methodenausprägungen. Sie können die Eigenschaften jedes Steuerelements von FrmAllgemeines inspizieren und ändern, indem Sie es in der Entwurfsansicht (»Menüpunkt Ansicht/Entwurfsansicht) anklicken und dann mit »Alt/Enter die Eigenschaftenliste anzeigen. Das Hilfethema Ereignisprozeduren veranschaulicht am Beispiel des Listenfelds das Zusammenspiel von Steuerelement (Objekt), Eigenschaft und Ereignisprozedur (Methode).

Die Listenfelder Aufgabentyp und IstOLE bestimmen darüber, welches Formular die Schaltfläche Aufgabe bearbeiten öffnet. Je nach Wert der beiden Listenfelder erscheint eines der folgenden Formulare:

Der folgende VBA-Code ist eine vereinfachte Version der Ereignisprozedur, die einen Klick auf die Schaltfläche 'Aufgabe bearbeiten' beantwortet:

'--- Öffnet je nach Aufgabentyp und IstOLE ein anderes Formular
'    [IstOLE] ist der laufende Wert des Listenfelds IstOLE
'    [Aufgabentyp] ist der laufende Wert des Listenfelds Aufgabentyp
Private Sub BtnAufgabeBearbeiten_Click()
  If [IstOLE] = -1 And [Aufgabentyp] = 3 Then 
    DoCmd.OpenForm "FrmOLEEssay"
  ElseIf [IstOLE] = -1 And [Aufgabentyp] <= 3 Then
    DoCmd.OpenForm "FrmOLEMcZuordnung"
  ElseIf [Aufgabentyp] = 1 Then
    DoCmd.OpenForm "FrmMehrfachwahl"
  ElseIf [Aufgabentyp] = 2 Then
    DoCmd.OpenForm "FrmZuordnung"
  ElseIf [Aufgabentyp] = 3 Then
    DoCmd.OpenForm "FrmEssay"
  End If
End Sub

MS Access-Steuerelemente

Unterformulare